<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script type="text/javascript">
        window.onload=function()
        {
            //模拟获取 用户数据 订单数据 商品数据
            function getUsers()
            {
                setTimeout(() => {
                    let data="用户数据";
                    //调用next方法，并且将数据传入(注意：第N个next传入的参数是第n-1个yield的返回值)
                    iterator.next(data);
                }, 1000);
            }

            function getOrders()
            {
                setTimeout(() => {
                    let data="订单数据";
                    //调用next方法，并且将数据传入(注意：第N个next传入的参数是第n-1个yield的返回值)
                    iterator.next(data);
                }, 1000);
            }

            function getGoods()
            {
                setTimeout(() => {
                    let data="商品数据";
                    //调用next方法，并且将数据传入(注意：第N个next传入的参数是第n-1个yield的返回值)
                    iterator.next(data);
                }, 1000);
            }

            //需要考虑逻辑顺序，先是获得用户数据——然后获得订单数据——最后得到订单上的商品数据
            function * gen()
            {
                let users=yield getUsers();
                console.log(users);
                let orders=yield getOrders();
                console.log(orders);
                let goods=yield getGoods();
                console.log(goods);
            }
            //调用生成器函数
            let iterator=gen();
            iterator.next();
        };
    </script>
</head>
<body>
    
</body>
</html>